home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 January: Mac OS SDK / Dev.CD Jan 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / AIncludes / ImageCodec.a < prev    next >
Encoding:
Text File  |  1998-08-17  |  56.0 KB  |  1,647 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        ImageCodec.a
  3. ;
  4. ;    Contains:    QuickTime Interfaces.
  5. ;
  6. ;    Version:    Technology:    QuickTime 3.0
  7. ;                Release:    Universal Interfaces 3.2
  8. ;
  9. ;    Copyright:    © 1990-1998 by Apple Computer, Inc., all rights reserved
  10. ;
  11. ;    Bugs?:        For bug reports, consult the following page on
  12. ;                the World Wide Web:
  13. ;
  14. ;                    http://developer.apple.com/bugreporter/
  15. ;
  16. ;
  17.     IF &TYPE('__IMAGECODEC__') = 'UNDEFINED' THEN
  18. __IMAGECODEC__ SET 1
  19.  
  20.     IF &TYPE('__MACTYPES__') = 'UNDEFINED' THEN
  21.     include 'MacTypes.a'
  22.     ENDIF
  23.     IF &TYPE('__QUICKDRAW__') = 'UNDEFINED' THEN
  24.     include 'Quickdraw.a'
  25.     ENDIF
  26.     IF &TYPE('__IMAGECOMPRESSION__') = 'UNDEFINED' THEN
  27.     include 'ImageCompression.a'
  28.     ENDIF
  29.     IF &TYPE('__COMPONENTS__') = 'UNDEFINED' THEN
  30.     include 'Components.a'
  31.     ENDIF
  32.     IF &TYPE('__MOVIES__') = 'UNDEFINED' THEN
  33.     include 'Movies.a'
  34.     ENDIF
  35.     IF &TYPE('__GXTYPES__') = 'UNDEFINED' THEN
  36.     include 'GXTypes.a'
  37.     ENDIF
  38.  
  39.  
  40. ;     codec capabilities flags    
  41.  
  42. codecCanScale                    EQU        $00000001
  43. codecCanMask                    EQU        $00000002
  44. codecCanMatte                    EQU        $00000004
  45. codecCanTransform                EQU        $00000008
  46. codecCanTransferMode            EQU        $00000010
  47. codecCanCopyPrev                EQU        $00000020
  48. codecCanSpool                    EQU        $00000040
  49. codecCanClipVertical            EQU        $00000080
  50. codecCanClipRectangular            EQU        $00000100
  51. codecCanRemapColor                EQU        $00000200
  52. codecCanFastDither                EQU        $00000400
  53. codecCanSrcExtract                EQU        $00000800
  54. codecCanCopyPrevComp            EQU        $00001000
  55. codecCanAsync                    EQU        $00002000
  56. codecCanMakeMask                EQU        $00004000
  57. codecCanShift                    EQU        $00008000
  58. codecCanAsyncWhen                EQU        $00010000
  59. codecCanShieldCursor            EQU        $00020000
  60. codecCanManagePrevBuffer        EQU        $00040000
  61. codecHasVolatileBuffer            EQU        $00080000
  62. codecWantsRegionMask            EQU        $00100000
  63. codecImageBufferIsOnScreen        EQU        $00200000
  64. codecWantsDestinationPixels        EQU        $00400000
  65. codecWantsSpecialScaling        EQU        $00800000
  66. codecHandlesInputs                EQU        $01000000
  67. codecCanDoIndirectSurface        EQU        $02000000
  68. codecIsSequenceSensitive        EQU        $04000000
  69. codecRequiresOffscreen            EQU        $08000000
  70. codecRequiresMaskBits            EQU        $10000000
  71. codecCanRemapResolution            EQU        $20000000
  72. codecIsDirectToScreenOnly        EQU        $40000000
  73. codecCanLockSurface                EQU        $80000000
  74. CodecCapabilities        RECORD 0
  75. flags                     ds.l    1                ; offset: $0 (0)
  76. wantedPixelSize             ds.w    1                ; offset: $4 (4)
  77. extendWidth                 ds.w    1                ; offset: $6 (6)
  78. extendHeight             ds.w    1                ; offset: $8 (8)
  79. bandMin                     ds.w    1                ; offset: $A (10)
  80. bandInc                     ds.w    1                ; offset: $C (12)
  81. pad                         ds.w    1                ; offset: $E (14)
  82. time                     ds.l    1                ; offset: $10 (16)
  83. sizeof                     EQU *                    ; size:   $14 (20)
  84.                         ENDR
  85. ;     codec condition flags    
  86.  
  87. codecConditionFirstBand            EQU        $00000001
  88. codecConditionLastBand            EQU        $00000002
  89. codecConditionFirstFrame        EQU        $00000004
  90. codecConditionNewDepth            EQU        $00000008
  91. codecConditionNewTransform        EQU        $00000010
  92. codecConditionNewSrcRect        EQU        $00000020
  93. codecConditionNewMask            EQU        $00000040
  94. codecConditionNewMatte            EQU        $00000080
  95. codecConditionNewTransferMode    EQU        $00000100
  96. codecConditionNewClut            EQU        $00000200
  97. codecConditionNewAccuracy        EQU        $00000400
  98. codecConditionNewDestination    EQU        $00000800
  99. codecConditionFirstScreen        EQU        $00001000
  100. codecConditionDoCursor            EQU        $00002000
  101. codecConditionCatchUpDiff        EQU        $00004000
  102. codecConditionMaskMayBeChanged    EQU        $00008000
  103. codecConditionToBuffer            EQU        $00010000
  104. codecConditionCodecChangedMask    EQU        $80000000
  105.  
  106.  
  107. codecInfoResourceType            EQU        'cdci'                ; codec info resource type 
  108. codecInterfaceVersion            EQU        2                    ; high word returned in component GetVersion 
  109. CDSequenceDataSourceQueueEntry RECORD 0
  110. nextBusy                 ds.l    1                ; offset: $0 (0)
  111. descSeed                 ds.l    1                ; offset: $4 (4)
  112. dataDesc                 ds.l    1                ; offset: $8 (8)
  113. data                     ds.l    1                ; offset: $C (12)
  114. dataSize                 ds.l    1                ; offset: $10 (16)
  115. useCount                 ds.l    1                ; offset: $14 (20)
  116. frameTime                 ds.l    1                ; offset: $18 (24)
  117. frameDuration             ds.l    1                ; offset: $1C (28)
  118. timeScale                 ds.l    1                ; offset: $20 (32)
  119. sizeof                     EQU *                    ; size:   $24 (36)
  120.                         ENDR
  121. ; typedef struct CDSequenceDataSourceQueueEntry * CDSequenceDataSourceQueueEntryPtr
  122.  
  123. CDSequenceDataSource    RECORD 0
  124. recordSize                 ds.l    1                ; offset: $0 (0)
  125. next                     ds.l    1                ; offset: $4 (4)
  126. seqID                     ds.l    1                ; offset: $8 (8)
  127. sourceID                 ds.l    1                ; offset: $C (12)
  128. sourceType                 ds.l    1                ; offset: $10 (16)
  129. sourceInputNumber         ds.l    1                ; offset: $14 (20)
  130. dataPtr                     ds.l    1                ; offset: $18 (24)
  131. dataDescription             ds.l    1                ; offset: $1C (28)
  132. changeSeed                 ds.l    1                ; offset: $20 (32)
  133. transferProc             ds.l    1                ; offset: $24 (36)
  134. transferRefcon             ds.l    1                ; offset: $28 (40)
  135. dataSize                 ds.l    1                ; offset: $2C (44)
  136. ;  fields available in QT 3 and later 
  137. dataQueue                 ds.l    1                ; offset: $30 (48)        ;  queue of CDSequenceDataSourceQueueEntry structures
  138. originalDataPtr             ds.l    1                ; offset: $34 (52)
  139. originalDataSize         ds.l    1                ; offset: $38 (56)
  140. originalDataDescription     ds.l    1                ; offset: $3C (60)
  141. originalDataDescriptionSeed  ds.l 1                ; offset: $40 (64)
  142. sizeof                     EQU *                    ; size:   $44 (68)
  143.                         ENDR
  144. ; typedef struct CDSequenceDataSource *    CDSequenceDataSourcePtr
  145.  
  146. ICMFrameTimeInfo        RECORD 0
  147. startTime                 ds        wide            ; offset: $0 (0)
  148. scale                     ds.l    1                ; offset: $8 (8)
  149. duration                 ds.l    1                ; offset: $C (12)
  150. sizeof                     EQU *                    ; size:   $10 (16)
  151.                         ENDR
  152. ; typedef struct ICMFrameTimeInfo *        ICMFrameTimeInfoPtr
  153.  
  154. CodecCompressParams        RECORD 0
  155. sequenceID                 ds.l    1                ; offset: $0 (0)        ;  precompress,bandcompress 
  156. imageDescription         ds.l    1                ; offset: $4 (4)        ;  precompress,bandcompress 
  157. data                     ds.l    1                ; offset: $8 (8)
  158. bufferSize                 ds.l    1                ; offset: $C (12)
  159. frameNumber                 ds.l    1                ; offset: $10 (16)
  160. startLine                 ds.l    1                ; offset: $14 (20)
  161. stopLine                 ds.l    1                ; offset: $18 (24)
  162. conditionFlags             ds.l    1                ; offset: $1C (28)
  163. callerFlags                 ds.w    1                ; offset: $20 (32)
  164. capabilities             ds.l    1                ; offset: $22 (34)        ;  precompress,bandcompress 
  165. progressProcRecord         ds        ICMProgressProcRecord ; offset: $26 (38)
  166. completionProcRecord     ds        ICMCompletionProcRecord ; offset: $2E (46)
  167. flushProcRecord             ds        ICMFlushProcRecord ; offset: $36 (54)
  168. srcPixMap                 ds        PixMap            ; offset: $3E (62)        ;  precompress,bandcompress 
  169. prevPixMap                 ds        PixMap            ; offset: $70 (112)
  170. spatialQuality             ds.l    1                ; offset: $A2 (162)
  171. temporalQuality             ds.l    1                ; offset: $A6 (166)
  172. similarity                 ds.l    1                ; offset: $AA (170)
  173. dataRateParams             ds.l    1                ; offset: $AE (174)
  174. reserved                 ds.l    1                ; offset: $B2 (178)
  175. ;  The following fields only exist for QuickTime 2.1 and greater 
  176. majorSourceChangeSeed     ds.w    1                ; offset: $B6 (182)
  177. minorSourceChangeSeed     ds.w    1                ; offset: $B8 (184)
  178. sourceData                 ds.l    1                ; offset: $BA (186)
  179. ;  The following fields only exit for QuickTime 2.5 and greater 
  180. preferredPacketSizeInBytes  ds.l 1                ; offset: $BE (190)
  181. ;  The following fields only exit for QuickTime 3.0 and greater 
  182. requestedBufferWidth     ds.l    1                ; offset: $C2 (194)        ;  must set codecWantsSpecialScaling to indicate this field is valid
  183. requestedBufferHeight     ds.l    1                ; offset: $C6 (198)        ;  must set codecWantsSpecialScaling to indicate this field is valid
  184. sizeof                     EQU *                    ; size:   $CA (202)
  185.                         ENDR
  186. CodecDecompressParams    RECORD 0
  187. sequenceID                 ds.l    1                ; offset: $0 (0)        ;  predecompress,banddecompress 
  188. imageDescription         ds.l    1                ; offset: $4 (4)        ;  predecompress,banddecompress 
  189. data                     ds.l    1                ; offset: $8 (8)
  190. bufferSize                 ds.l    1                ; offset: $C (12)
  191. frameNumber                 ds.l    1                ; offset: $10 (16)
  192. startLine                 ds.l    1                ; offset: $14 (20)
  193. stopLine                 ds.l    1                ; offset: $18 (24)
  194. conditionFlags             ds.l    1                ; offset: $1C (28)
  195. callerFlags                 ds.w    1                ; offset: $20 (32)
  196. capabilities             ds.l    1                ; offset: $22 (34)        ;  predecompress,banddecompress 
  197. progressProcRecord         ds        ICMProgressProcRecord ; offset: $26 (38)
  198. completionProcRecord     ds        ICMCompletionProcRecord ; offset: $2E (46)
  199. dataProcRecord             ds        ICMDataProcRecord ; offset: $36 (54)
  200. port                     ds.l    1                ; offset: $3E (62)        ;  predecompress,banddecompress 
  201. dstPixMap                 ds        PixMap            ; offset: $42 (66)        ;  predecompress,banddecompress 
  202. maskBits                 ds.l    1                ; offset: $74 (116)
  203. mattePixMap                 ds.l    1                ; offset: $78 (120)
  204. srcRect                     ds        Rect            ; offset: $7C (124)        ;  predecompress,banddecompress 
  205. matrix                     ds.l    1                ; offset: $84 (132)        ;  predecompress,banddecompress 
  206. accuracy                 ds.l    1                ; offset: $88 (136)        ;  predecompress,banddecompress 
  207. transferMode             ds.w    1                ; offset: $8C (140)        ;  predecompress,banddecompress 
  208. frameTime                 ds.l    1                ; offset: $8E (142)        ;  banddecompress 
  209. reserved                 ds.l    1                ; offset: $92 (146) <-- really an array of length one
  210. ;  The following fields only exist for QuickTime 2.0 and greater 
  211. matrixFlags                 ds.b    1                ; offset: $96 (150)        ;  high bit set if 2x resize 
  212. matrixType                 ds.b    1                ; offset: $97 (151)
  213. dstRect                     ds        Rect            ; offset: $98 (152)        ;  only valid for simple transforms 
  214. ;  The following fields only exist for QuickTime 2.1 and greater 
  215. majorSourceChangeSeed     ds.w    1                ; offset: $A0 (160)
  216. minorSourceChangeSeed     ds.w    1                ; offset: $A2 (162)
  217. sourceData                 ds.l    1                ; offset: $A4 (164)
  218. maskRegion                 ds.l    1                ; offset: $A8 (168)
  219. ;  The following fields only exist for QuickTime 2.5 and greater 
  220. wantedDestinationPixelTypes  ds.l 1                ; offset: $AC (172)        ;  Handle to 0-terminated list of OSTypes 
  221. screenFloodMethod         ds.l    1                ; offset: $B0 (176)
  222. screenFloodValue         ds.l    1                ; offset: $B4 (180)
  223. preferredOffscreenPixelSize  ds.w 1                ; offset: $B8 (184)
  224. ;  The following fields only exist for QuickTime 3.0 and greater 
  225. syncFrameTime             ds.l    1                ; offset: $BA (186)        ;  banddecompress 
  226. needUpdateOnTimeChange     ds.b    1                ; offset: $BE (190)        ;  banddecompress 
  227. enableBlackLining         ds.b    1                ; offset: $BF (191)
  228. needUpdateOnSourceChange  ds.b    1                ; offset: $C0 (192)        ;  band decompress 
  229. pad                         ds.b    1                ; offset: $C1 (193)
  230. unused                     ds.l    1                ; offset: $C2 (194)
  231. finalDestinationPort     ds.l    1                ; offset: $C6 (198)
  232. requestedBufferWidth     ds.l    1                ; offset: $CA (202)        ;  must set codecWantsSpecialScaling to indicate this field is valid
  233. requestedBufferHeight     ds.l    1                ; offset: $CE (206)        ;  must set codecWantsSpecialScaling to indicate this field is valid
  234. sizeof                     EQU *                    ; size:   $D2 (210)
  235.                         ENDR
  236.  
  237. matrixFlagScale2x                EQU        $00000080
  238. matrixFlagScale1x                EQU        $00000040
  239. matrixFlagScaleHalf                EQU        $00000020
  240.  
  241. kScreenFloodMethodNone            EQU        0
  242. kScreenFloodMethodKeyColor        EQU        1
  243. kScreenFloodMethodAlpha            EQU        2
  244.  
  245. kFlushLastQueuedFrame            EQU        0
  246. kFlushFirstQueuedFrame            EQU        1
  247.  
  248. kNewImageGWorldErase            EQU        $00000001
  249. ImageSubCodecDecompressCapabilities RECORD 0
  250. recordSize                 ds.l    1                ; offset: $0 (0)        ;  sizeof(ImageSubCodecDecompressCapabilities)
  251. decompressRecordSize     ds.l    1                ; offset: $4 (4)        ;  size of your codec's decompress record
  252. canAsync                 ds.b    1                ; offset: $8 (8)        ;  default true
  253. pad                         ds.b    3                ; offset: $9 (9)
  254. sizeof                     EQU *                    ; size:   $C (12)
  255.                         ENDR
  256.  
  257. kCodecFrameTypeUnknown            EQU        0
  258. kCodecFrameTypeKey                EQU        1
  259. kCodecFrameTypeDifference        EQU        2
  260. kCodecFrameTypeDroppableDifference EQU    3
  261. ImageSubCodecDecompressRecord RECORD 0
  262. baseAddr                 ds.l    1                ; offset: $0 (0)
  263. rowBytes                 ds.l    1                ; offset: $4 (4)
  264. codecData                 ds.l    1                ; offset: $8 (8)
  265. progressProcRecord         ds        ICMProgressProcRecord ; offset: $C (12)
  266. dataProcRecord             ds        ICMDataProcRecord ; offset: $14 (20)
  267. userDecompressRecord     ds.l    1                ; offset: $1C (28)        ;  pointer to codec-specific per-band data
  268. frameType                 ds.b    1                ; offset: $20 (32)
  269. pad                         ds.b    3                ; offset: $21 (33)
  270. sizeof                     EQU *                    ; size:   $24 (36)
  271.                         ENDR
  272. ;  name of parameters or effect -- placed in root container, required 
  273.  
  274. kParameterTitleName                EQU        'name'
  275. kParameterTitleID                EQU        1
  276. ;  codec sub-type of parameters or effect -- placed in root container, required 
  277.  
  278. kParameterWhatName                EQU        'what'
  279. kParameterWhatID                EQU        1
  280. ;  effect version -- placed in root container, optional, but recommended 
  281.  
  282. kParameterVersionName            EQU        'vers'
  283. kParameterVersionID                EQU        1
  284. ;  is effect repeatable -- placed in root container, optional, default is TRUE
  285.  
  286. kParameterRepeatableName        EQU        'pete'
  287. kParameterRepeatableID            EQU        1
  288.  
  289. kParameterRepeatableTrue        EQU        1
  290. kParameterRepeatableFalse        EQU        0
  291. ;  substitution codec in case effect is missing -- placed in root container, recommended 
  292.  
  293. kParameterAlternateCodecName    EQU        'subs'
  294. kParameterAlternateCodecID        EQU        1
  295. ;  maximum number of sources -- placed in root container, required 
  296.  
  297. kParameterSourceCountName        EQU        'srcs'
  298. kParameterSourceCountID            EQU        1
  299.  
  300.  
  301. kParameterDependencyName        EQU        'deep'
  302. kParameterDependencyID            EQU        1
  303.  
  304. kParameterListDependsUponColorProfiles EQU 'prof'
  305. kParameterListDependsUponFonts    EQU        'font'
  306. ParameterDependancyRecord RECORD 0
  307. dependCount                 ds.l    1                ; offset: $0 (0)
  308. depends                     ds.l    1                ; offset: $4 (4) <-- really an array of length one
  309. sizeof                     EQU *                    ; size:   $8 (8)
  310.                         ENDR
  311.  
  312. ;   enumeration list in container -- placed in root container, optional unless used by a
  313. ;   parameter in the list
  314.  
  315.  
  316.  
  317. kParameterEnumList                EQU        'enum'
  318. EnumValuePair            RECORD 0
  319. value                     ds.l    1                ; offset: $0 (0)
  320. name                     ds        Str255            ; offset: $4 (4)
  321. sizeof                     EQU *                    ; size:   $104 (260)
  322.                         ENDR
  323. EnumListRecord            RECORD 0
  324. enumCount                 ds.l    1                ; offset: $0 (0)        ;  number of enumeration items to follow
  325. values                     ds        EnumValuePair    ; offset: $4 (4) <-- really an array of length one ;  values and names for them, packed 
  326. sizeof                     EQU *                    ; size:   $108 (264)
  327.                         ENDR
  328. ;  atom type of parameter
  329.  
  330. kParameterAtomTypeAndID            EQU        'type'
  331.  
  332. kNoAtom                            EQU        'none'                ; atom type for no data got/set
  333. kAtomNoFlags                    EQU        $00000000
  334. kAtomNotInterpolated            EQU        $00000001            ; atom can never be interpolated
  335. kAtomInterpolateIsOptional        EQU        $00000002            ; atom can be interpolated, but it is an advanced user operation
  336. ParameterAtomTypeAndID    RECORD 0
  337. atomType                 ds.l    1                ; offset: $0 (0)        ;  type of atom this data comes from/goes into
  338. atomID                     ds.l    1                ; offset: $4 (4)        ;  ID of atom this data comes from/goes into
  339. atomFlags                 ds.l    1                ; offset: $8 (8)        ;  options for this atom
  340. atomName                 ds        Str255            ; offset: $C (12)        ;  name of this value type
  341. sizeof                     EQU *                    ; size:   $10C (268)
  342.                         ENDR
  343. ;  data type of a parameter
  344.  
  345. kParameterDataType                EQU        'data'
  346.  
  347. kParameterTypeDataLong            EQU        2                    ; integer value
  348. kParameterTypeDataFixed            EQU        3                    ; fixed point value
  349. kParameterTypeDataRGBValue        EQU        8                    ; RGBColor data
  350. kParameterTypeDataDouble        EQU        11                    ; IEEE 64 bit floating point value
  351. kParameterTypeDataText            EQU        'text'                ; editable text item
  352. kParameterTypeDataEnum            EQU        'enum'                ; enumerated lookup value
  353. kParameterTypeDataBitField        EQU        'bool'                ; bit field value (something that holds boolean(s))
  354. kParameterTypeDataImage            EQU        'imag'                ; reference to an image via Picture data
  355. ParameterDataType        RECORD 0
  356. dataType                 ds.l    1                ; offset: $0 (0)        ;  type of data this item is stored as
  357. sizeof                     EQU *                    ; size:   $4 (4)
  358.                         ENDR
  359.  
  360. ;   alternate (optional) data type -- main data type always required.  
  361. ;   Must be modified or deleted when modifying main data type.
  362. ;   Main data type must be modified when alternate is modified.
  363.  
  364.  
  365.  
  366. kParameterAlternateDataType        EQU        'alt1'
  367. kParameterTypeDataColorValue    EQU        'cmlr'                ; CMColor data (supported on machines with ColorSync)
  368. kParameterTypeDataCubic            EQU        'cubi'                ; cubic bezier(s) (no built-in support)
  369. kParameterTypeDataNURB            EQU        'nurb'                ; nurb(s) (no built-in support)
  370. ParameterAlternateDataEntry RECORD 0
  371. dataType                 ds.l    1                ; offset: $0 (0)        ;  type of data this item is stored as
  372. alternateAtom             ds.l    1                ; offset: $4 (4)        ;  where to store
  373. sizeof                     EQU *                    ; size:   $8 (8)
  374.                         ENDR
  375. ParameterAlternateDataType RECORD 0
  376. numEntries                 ds.l    1                ; offset: $0 (0)
  377. entries                     ds        ParameterAlternateDataEntry ; offset: $4 (4) <-- really an array of length one
  378. sizeof                     EQU *                    ; size:   $C (12)
  379.                         ENDR
  380. ;  legal values for the parameter
  381.  
  382. kParameterDataRange                EQU        'rang'
  383.  
  384. kNoMinimumLongFixed                EQU        $7FFFFFFF            ; ignore minimum/maxiumum values
  385. kNoMaximumLongFixed                EQU        $80000000
  386. kNoScaleLongFixed                EQU        0                    ; don't perform any scaling of value
  387. kNoPrecision                    EQU        -1                    ; allow as many digits as format
  388. ;  'text'
  389. StringRangeRecord        RECORD 0
  390. maxChars                 ds.l    1                ; offset: $0 (0)        ;  maximum length of string
  391. maxLines                 ds.l    1                ; offset: $4 (4)        ;  number of editing lines to use (1 typical, 0 to default)
  392. sizeof                     EQU *                    ; size:   $8 (8)
  393.                         ENDR
  394. ;  'long'
  395. LongRangeRecord            RECORD 0
  396. minValue                 ds.l    1                ; offset: $0 (0)        ;  no less than this
  397. maxValue                 ds.l    1                ; offset: $4 (4)        ;  no more than this
  398. scaleValue                 ds.l    1                ; offset: $8 (8)        ;  muliply content by this going in, divide going out
  399. precisionDigits             ds.l    1                ; offset: $C (12)        ;  # digits of precision when editing via typing
  400. sizeof                     EQU *                    ; size:   $10 (16)
  401.                         ENDR
  402. ;  'enum'
  403. EnumRangeRecord            RECORD 0
  404. enumID                     ds.l    1                ; offset: $0 (0)        ;  'enum' list in root container to search within
  405. sizeof                     EQU *                    ; size:   $4 (4)
  406.                         ENDR
  407. ;  'fixd'
  408. FixedRangeRecord        RECORD 0
  409. minValue                 ds.l    1                ; offset: $0 (0)        ;  no less than this
  410. maxValue                 ds.l    1                ; offset: $4 (4)        ;  no more than this
  411. scaleValue                 ds.l    1                ; offset: $8 (8)        ;  muliply content by this going in, divide going out
  412. precisionDigits             ds.l    1                ; offset: $C (12)        ;  # digits of precision when editing via typing
  413. sizeof                     EQU *                    ; size:   $10 (16)
  414.                         ENDR
  415. ;  'doub'
  416. ;  'bool'    
  417. BooleanRangeRecord        RECORD 0
  418. maskValue                 ds.l    1                ; offset: $0 (0)        ;  value to mask on/off to set/clear the boolean
  419. sizeof                     EQU *                    ; size:   $4 (4)
  420.                         ENDR
  421. ;  'rgb '
  422. RGBRangeRecord            RECORD 0
  423. minColor                 ds        RGBColor        ; offset: $0 (0)
  424. maxColor                 ds        RGBColor        ; offset: $6 (6)
  425. sizeof                     EQU *                    ; size:   $C (12)
  426.                         ENDR
  427. ;  'imag'
  428.  
  429. kParameterImageNoFlags            EQU        0
  430. ImageRangeRecord        RECORD 0
  431. imageFlags                 ds.l    1                ; offset: $0 (0)
  432. sizeof                     EQU *                    ; size:   $4 (4)
  433.                         ENDR
  434. ;  union of all of the above
  435. ;  UI behavior of a parameter
  436.  
  437. kParameterDataBehavior            EQU        'ditl'
  438.  
  439.                                                             ; items edited via typing
  440. kParameterItemEditText            EQU        'edit'                ; edit text box
  441. kParameterItemEditLong            EQU        'long'                ; long number editing box
  442. kParameterItemEditFixed            EQU        'fixd'                ; fixed point number editing box
  443. kParameterItemEditDouble        EQU        'doub'                ; double number editing box
  444.                                                             ; items edited via control(s)
  445. kParameterItemPopUp                EQU        'popu'                ; pop up value for enum types
  446. kParameterItemRadioCluster        EQU        'radi'                ; radio cluster for enum types
  447. kParameterItemCheckBox            EQU        'chex'                ; check box for booleans
  448. kParameterItemControl            EQU        'cntl'                ; item controlled via a standard control of some type
  449.                                                             ; special user items
  450. kParameterItemLine                EQU        'line'                ; line
  451. kParameterItemColorPicker        EQU        'pick'                ; color swatch & picker
  452. kParameterItemGroupDivider        EQU        'divi'                ; start of a new group of items
  453. kParameterItemStaticText        EQU        'stat'                ; display "parameter name" as static text
  454. kParameterItemDragImage            EQU        'imag'                ; allow image display, along with drag and drop
  455.                                                             ; flags valid for lines and groups
  456. kGraphicsNoFlags                EQU        $00000000            ; no options for graphics
  457. kGraphicsFlagsGray                EQU        $00000001            ; draw lines with gray
  458.                                                             ; flags valid for groups
  459. kGroupNoFlags                    EQU        $00000000            ; no options for group -- may be combined with graphics options                        
  460. kGroupAlignText                    EQU        $00010000            ; edit text items in group have the same size
  461. kGroupSurroundBox                EQU        $00020000            ; group should be surrounded with a box
  462. kGroupMatrix                    EQU        $00040000            ; side-by-side arrangement of group is okay
  463. kGroupNoName                    EQU        $00080000            ; name of group should not be displayed above box
  464.                                                             ; flags valid for popup/radiocluster/checkbox/control
  465. kDisableControl                    EQU        $00000001
  466. kDisableWhenNotEqual            EQU        $00000001
  467. kDisableWhenEqual                EQU        $00000011
  468. kDisableWhenLessThan            EQU        $00000021
  469. kDisableWhenGreaterThan            EQU        $00000031            ; flags valid for popups
  470. kPopupStoreAsString                EQU        $00010000
  471. ControlBehaviors        RECORD 0
  472. groupID                     ds.l    1                ; offset: $0 (0)        ;  group under control of this item
  473. controlValue             ds.l    1                ; offset: $4 (4)        ;  control value for comparison purposes
  474. sizeof                     EQU *                    ; size:   $8 (8)
  475.                         ENDR
  476. ParameterDataBehavior    RECORD 0
  477. behaviorType             ds.l    1                ; offset: $0 (0)
  478. behaviorFlags             ds.l    1                ; offset: $4 (4)
  479. controls                 ds        ControlBehaviors ; offset: $8 (8)
  480. sizeof                     EQU *                    ; size:   $10 (16)
  481.                         ENDR
  482. ;  higher level purpose of a parameter or set of parameters
  483.  
  484. kParameterDataUsage                EQU        'use '
  485.  
  486. kParameterUsagePixels            EQU        'pixl'
  487. kParameterUsageRectangle        EQU        'rect'
  488. kParameterUsagePoint            EQU        'xy  '
  489. kParameterUsage3DPoint            EQU        'xyz '
  490. kParameterUsageDegrees            EQU        'degr'
  491. kParameterUsageRadians            EQU        'rads'
  492. kParameterUsagePercent            EQU        'pcnt'
  493. kParameterUsageSeconds            EQU        'secs'
  494. kParameterUsageMilliseconds        EQU        'msec'
  495. kParameterUsageMicroseconds        EQU        'µsec'
  496. kParameterUsage3by3Matrix        EQU        '3by3'
  497. ParameterDataUsage        RECORD 0
  498. usageType                 ds.l    1                ; offset: $0 (0)        ;  higher level purpose of the data or group
  499. sizeof                     EQU *                    ; size:   $4 (4)
  500.                         ENDR
  501. ;  default value(s) for a parameter
  502.  
  503. kParameterDataDefaultItem        EQU        'dflt'
  504. ;  atoms that help to fill in data within the info window 
  505.  
  506. kParameterInfoLongName            EQU        '©nam'
  507. kParameterInfoCopyright            EQU        '©cpy'
  508. kParameterInfoDescription        EQU        '©inf'
  509. kParameterInfoWindowTitle        EQU        '©wnt'
  510. kParameterInfoPicture            EQU        '©pix'
  511. kParameterInfoManufacturer        EQU        '©man'
  512. kParameterInfoIDs                EQU        1
  513. ;  flags for ImageCodecValidateParameters 
  514.  
  515. kParameterValidationNoFlags        EQU        $00000000
  516. kParameterValidationFinalValidation EQU    $00000001
  517. ; typedef long                             QTParameterValidationOptions
  518.  
  519. ;  QTAtomTypes for atoms in image compressor settings containers
  520.  
  521. kImageCodecSettingsFieldCount    EQU        'fiel'                ; Number of fields (UInt8) 
  522. kImageCodecSettingsFieldOrdering EQU    'fdom'                ; Ordering of fields (UInt8)
  523. kImageCodecSettingsFieldOrderingF1F2 EQU 1
  524. kImageCodecSettingsFieldOrderingF2F1 EQU 2
  525. ;     codec selectors 0-127 are reserved by Apple 
  526. ;     codec selectors 128-191 are subtype specific 
  527. ;     codec selectors 192-255 are vendor specific 
  528. ;     codec selectors 256-32767 are available for general use 
  529. ;     negative selectors are reserved by the Component Manager 
  530. ;
  531. ; pascal ComponentResult ImageCodecGetCodecInfo(ComponentInstance ci, CodecInfo *info)
  532. ;
  533.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  534.         Macro
  535.         _ImageCodecGetCodecInfo
  536.             move.l              #$00040000,-(sp)
  537.             moveq               #0,D0
  538.             dc.w                $A82A
  539.         EndM
  540.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  541.         IMPORT_CFM_FUNCTION ImageCodecGetCodecInfo
  542.     ENDIF
  543.  
  544. ;
  545. ; pascal ComponentResult ImageCodecGetCompressionTime(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, short depth, CodecQ *spatialQuality, CodecQ *temporalQuality, unsigned long *time)
  546. ;
  547.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  548.         Macro
  549.         _ImageCodecGetCompressionTime
  550.             move.l              #$00160001,-(sp)
  551.             moveq               #0,D0
  552.             dc.w                $A82A
  553.         EndM
  554.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  555.         IMPORT_CFM_FUNCTION ImageCodecGetCompressionTime
  556.     ENDIF
  557.  
  558. ;
  559. ; pascal ComponentResult ImageCodecGetMaxCompressionSize(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, short depth, CodecQ quality, long *size)
  560. ;
  561.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  562.         Macro
  563.         _ImageCodecGetMaxCompressionSize
  564.             move.l              #$00120002,-(sp)
  565.             moveq               #0,D0
  566.             dc.w                $A82A
  567.         EndM
  568.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  569.         IMPORT_CFM_FUNCTION ImageCodecGetMaxCompressionSize
  570.     ENDIF
  571.  
  572. ;
  573. ; pascal ComponentResult ImageCodecPreCompress(ComponentInstance ci, CodecCompressParams *params)
  574. ;
  575.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  576.         Macro
  577.         _ImageCodecPreCompress
  578.             move.l              #$00040003,-(sp)
  579.             moveq               #0,D0
  580.             dc.w                $A82A
  581.         EndM
  582.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  583.         IMPORT_CFM_FUNCTION ImageCodecPreCompress
  584.     ENDIF
  585.  
  586. ;
  587. ; pascal ComponentResult ImageCodecBandCompress(ComponentInstance ci, CodecCompressParams *params)
  588. ;
  589.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  590.         Macro
  591.         _ImageCodecBandCompress
  592.             move.l              #$00040004,-(sp)
  593.             moveq               #0,D0
  594.             dc.w                $A82A
  595.         EndM
  596.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  597.         IMPORT_CFM_FUNCTION ImageCodecBandCompress
  598.     ENDIF
  599.  
  600. ;
  601. ; pascal ComponentResult ImageCodecPreDecompress(ComponentInstance ci, CodecDecompressParams *params)
  602. ;
  603.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  604.         Macro
  605.         _ImageCodecPreDecompress
  606.             move.l              #$00040005,-(sp)
  607.             moveq               #0,D0
  608.             dc.w                $A82A
  609.         EndM
  610.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  611.         IMPORT_CFM_FUNCTION ImageCodecPreDecompress
  612.     ENDIF
  613.  
  614. ;
  615. ; pascal ComponentResult ImageCodecBandDecompress(ComponentInstance ci, CodecDecompressParams *params)
  616. ;
  617.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  618.         Macro
  619.         _ImageCodecBandDecompress
  620.             move.l              #$00040006,-(sp)
  621.             moveq               #0,D0
  622.             dc.w                $A82A
  623.         EndM
  624.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  625.         IMPORT_CFM_FUNCTION ImageCodecBandDecompress
  626.     ENDIF
  627.  
  628. ;
  629. ; pascal ComponentResult ImageCodecBusy(ComponentInstance ci, ImageSequence seq)
  630. ;
  631.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  632.         Macro
  633.         _ImageCodecBusy
  634.             move.l              #$00040007,-(sp)
  635.             moveq               #0,D0
  636.             dc.w                $A82A
  637.         EndM
  638.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  639.         IMPORT_CFM_FUNCTION ImageCodecBusy
  640.     ENDIF
  641.  
  642. ;
  643. ; pascal ComponentResult ImageCodecGetCompressedImageSize(ComponentInstance ci, ImageDescriptionHandle desc, Ptr data, long bufferSize, ICMDataProcRecordPtr dataProc, long *dataSize)
  644. ;
  645.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  646.         Macro
  647.         _ImageCodecGetCompressedImageSize
  648.             move.l              #$00140008,-(sp)
  649.             moveq               #0,D0
  650.             dc.w                $A82A
  651.         EndM
  652.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  653.         IMPORT_CFM_FUNCTION ImageCodecGetCompressedImageSize
  654.     ENDIF
  655.  
  656. ;
  657. ; pascal ComponentResult ImageCodecGetSimilarity(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, ImageDescriptionHandle desc, Ptr data, Fixed *similarity)
  658. ;
  659.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  660.         Macro
  661.         _ImageCodecGetSimilarity
  662.             move.l              #$00140009,-(sp)
  663.             moveq               #0,D0
  664.             dc.w                $A82A
  665.         EndM
  666.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  667.         IMPORT_CFM_FUNCTION ImageCodecGetSimilarity
  668.     ENDIF
  669.  
  670. ;
  671. ; pascal ComponentResult ImageCodecTrimImage(ComponentInstance ci, ImageDescriptionHandle Desc, Ptr inData, long inBufferSize, ICMDataProcRecordPtr dataProc, Ptr outData, long outBufferSize, ICMFlushProcRecordPtr flushProc, Rect *trimRect, ICMProgressProcRecordPtr progressProc)
  672. ;
  673.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  674.         Macro
  675.         _ImageCodecTrimImage
  676.             move.l              #$0024000A,-(sp)
  677.             moveq               #0,D0
  678.             dc.w                $A82A
  679.         EndM
  680.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  681.         IMPORT_CFM_FUNCTION ImageCodecTrimImage
  682.     ENDIF
  683.  
  684. ;
  685. ; pascal ComponentResult ImageCodecRequestSettings(ComponentInstance ci, Handle settings, Rect *rp, ModalFilterUPP filterProc)
  686. ;
  687.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  688.         Macro
  689.         _ImageCodecRequestSettings
  690.             move.l              #$000C000B,-(sp)
  691.             moveq               #0,D0
  692.             dc.w                $A82A
  693.         EndM
  694.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  695.         IMPORT_CFM_FUNCTION ImageCodecRequestSettings
  696.     ENDIF
  697.  
  698. ;
  699. ; pascal ComponentResult ImageCodecGetSettings(ComponentInstance ci, Handle settings)
  700. ;
  701.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  702.         Macro
  703.         _ImageCodecGetSettings
  704.             move.l              #$0004000C,-(sp)
  705.             moveq               #0,D0
  706.             dc.w                $A82A
  707.         EndM
  708.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  709.         IMPORT_CFM_FUNCTION ImageCodecGetSettings
  710.     ENDIF
  711.  
  712. ;
  713. ; pascal ComponentResult ImageCodecSetSettings(ComponentInstance ci, Handle settings)
  714. ;
  715.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  716.         Macro
  717.         _ImageCodecSetSettings
  718.             move.l              #$0004000D,-(sp)
  719.             moveq               #0,D0
  720.             dc.w                $A82A
  721.         EndM
  722.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  723.         IMPORT_CFM_FUNCTION ImageCodecSetSettings
  724.     ENDIF
  725.  
  726. ;
  727. ; pascal ComponentResult ImageCodecFlush(ComponentInstance ci)
  728. ;
  729.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  730.         Macro
  731.         _ImageCodecFlush
  732.             move.l              #$0000000E,-(sp)
  733.             moveq               #0,D0
  734.             dc.w                $A82A
  735.         EndM
  736.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  737.         IMPORT_CFM_FUNCTION ImageCodecFlush
  738.     ENDIF
  739.  
  740. ;
  741. ; pascal ComponentResult ImageCodecSetTimeCode(ComponentInstance ci, void *timeCodeFormat, void *timeCodeTime)
  742. ;
  743.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  744.         Macro
  745.         _ImageCodecSetTimeCode
  746.             move.l              #$0008000F,-(sp)
  747.             moveq               #0,D0
  748.             dc.w                $A82A
  749.         EndM
  750.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  751.         IMPORT_CFM_FUNCTION ImageCodecSetTimeCode
  752.     ENDIF
  753.  
  754. ;
  755. ; pascal ComponentResult ImageCodecIsImageDescriptionEquivalent(ComponentInstance ci, ImageDescriptionHandle newDesc, Boolean *equivalent)
  756. ;
  757.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  758.         Macro
  759.         _ImageCodecIsImageDescriptionEquivalent
  760.             move.l              #$00080010,-(sp)
  761.             moveq               #0,D0
  762.             dc.w                $A82A
  763.         EndM
  764.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  765.         IMPORT_CFM_FUNCTION ImageCodecIsImageDescriptionEquivalent
  766.     ENDIF
  767.  
  768. ;
  769. ; pascal ComponentResult ImageCodecNewMemory(ComponentInstance ci, Ptr *data, Size dataSize, long dataUse, ICMMemoryDisposedUPP memoryGoneProc, void *refCon)
  770. ;
  771.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  772.         Macro
  773.         _ImageCodecNewMemory
  774.             move.l              #$00140011,-(sp)
  775.             moveq               #0,D0
  776.             dc.w                $A82A
  777.         EndM
  778.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  779.         IMPORT_CFM_FUNCTION ImageCodecNewMemory
  780.     ENDIF
  781.  
  782. ;
  783. ; pascal ComponentResult ImageCodecDisposeMemory(ComponentInstance ci, Ptr data)
  784. ;
  785.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  786.         Macro
  787.         _ImageCodecDisposeMemory
  788.             move.l              #$00040012,-(sp)
  789.             moveq               #0,D0
  790.             dc.w                $A82A
  791.         EndM
  792.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  793.         IMPORT_CFM_FUNCTION ImageCodecDisposeMemory
  794.     ENDIF
  795.  
  796. ;
  797. ; pascal ComponentResult ImageCodecHitTestData(ComponentInstance ci, ImageDescriptionHandle desc, void *data, Size dataSize, Point where, Boolean *hit)
  798. ;
  799.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  800.         Macro
  801.         _ImageCodecHitTestData
  802.             move.l              #$00140013,-(sp)
  803.             moveq               #0,D0
  804.             dc.w                $A82A
  805.         EndM
  806.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  807.         IMPORT_CFM_FUNCTION ImageCodecHitTestData
  808.     ENDIF
  809.  
  810. ;
  811. ; pascal ComponentResult ImageCodecNewImageBufferMemory(ComponentInstance ci, CodecDecompressParams *params, long flags, ICMMemoryDisposedUPP memoryGoneProc, void *refCon)
  812. ;
  813.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  814.         Macro
  815.         _ImageCodecNewImageBufferMemory
  816.             move.l              #$00100014,-(sp)
  817.             moveq               #0,D0
  818.             dc.w                $A82A
  819.         EndM
  820.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  821.         IMPORT_CFM_FUNCTION ImageCodecNewImageBufferMemory
  822.     ENDIF
  823.  
  824. ;
  825. ; pascal ComponentResult ImageCodecExtractAndCombineFields(ComponentInstance ci, long fieldFlags, void *data1, long dataSize1, ImageDescriptionHandle desc1, void *data2, long dataSize2, ImageDescriptionHandle desc2, void *outputData, long *outDataSize, ImageDescriptionHandle descOut)
  826. ;
  827.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  828.         Macro
  829.         _ImageCodecExtractAndCombineFields
  830.             move.l              #$00280015,-(sp)
  831.             moveq               #0,D0
  832.             dc.w                $A82A
  833.         EndM
  834.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  835.         IMPORT_CFM_FUNCTION ImageCodecExtractAndCombineFields
  836.     ENDIF
  837.  
  838. ;
  839. ; pascal ComponentResult ImageCodecGetMaxCompressionSizeWithSources(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, short depth, CodecQ quality, CDSequenceDataSourcePtr sourceData, long *size)
  840. ;
  841.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  842.         Macro
  843.         _ImageCodecGetMaxCompressionSizeWithSources
  844.             move.l              #$00160016,-(sp)
  845.             moveq               #0,D0
  846.             dc.w                $A82A
  847.         EndM
  848.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  849.         IMPORT_CFM_FUNCTION ImageCodecGetMaxCompressionSizeWithSources
  850.     ENDIF
  851.  
  852. ;
  853. ; pascal ComponentResult ImageCodecSetTimeBase(ComponentInstance ci, void *base)
  854. ;
  855.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  856.         Macro
  857.         _ImageCodecSetTimeBase
  858.             move.l              #$00040017,-(sp)
  859.             moveq               #0,D0
  860.             dc.w                $A82A
  861.         EndM
  862.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  863.         IMPORT_CFM_FUNCTION ImageCodecSetTimeBase
  864.     ENDIF
  865.  
  866. ;
  867. ; pascal ComponentResult ImageCodecSourceChanged(ComponentInstance ci, UInt32 majorSourceChangeSeed, UInt32 minorSourceChangeSeed, CDSequenceDataSourcePtr sourceData, long *flagsOut)
  868. ;
  869.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  870.         Macro
  871.         _ImageCodecSourceChanged
  872.             move.l              #$00100018,-(sp)
  873.             moveq               #0,D0
  874.             dc.w                $A82A
  875.         EndM
  876.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  877.         IMPORT_CFM_FUNCTION ImageCodecSourceChanged
  878.     ENDIF
  879.  
  880. ;
  881. ; pascal ComponentResult ImageCodecFlushFrame(ComponentInstance ci, UInt32 flags)
  882. ;
  883.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  884.         Macro
  885.         _ImageCodecFlushFrame
  886.             move.l              #$00040019,-(sp)
  887.             moveq               #0,D0
  888.             dc.w                $A82A
  889.         EndM
  890.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  891.         IMPORT_CFM_FUNCTION ImageCodecFlushFrame
  892.     ENDIF
  893.  
  894. ;
  895. ; pascal ComponentResult ImageCodecGetSettingsAsText(ComponentInstance ci, Handle *text)
  896. ;
  897.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  898.         Macro
  899.         _ImageCodecGetSettingsAsText
  900.             move.l              #$0004001A,-(sp)
  901.             moveq               #0,D0
  902.             dc.w                $A82A
  903.         EndM
  904.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  905.         IMPORT_CFM_FUNCTION ImageCodecGetSettingsAsText
  906.     ENDIF
  907.  
  908. ;
  909. ; pascal ComponentResult ImageCodecGetParameterListHandle(ComponentInstance ci, Handle *parameterDescriptionHandle)
  910. ;
  911.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  912.         Macro
  913.         _ImageCodecGetParameterListHandle
  914.             move.l              #$0004001B,-(sp)
  915.             moveq               #0,D0
  916.             dc.w                $A82A
  917.         EndM
  918.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  919.         IMPORT_CFM_FUNCTION ImageCodecGetParameterListHandle
  920.     ENDIF
  921.  
  922. ;
  923. ; pascal ComponentResult ImageCodecGetParameterList(ComponentInstance ci, QTAtomContainer *parameterDescription)
  924. ;
  925.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  926.         Macro
  927.         _ImageCodecGetParameterList
  928.             move.l              #$0004001C,-(sp)
  929.             moveq               #0,D0
  930.             dc.w                $A82A
  931.         EndM
  932.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  933.         IMPORT_CFM_FUNCTION ImageCodecGetParameterList
  934.     ENDIF
  935.  
  936. ;
  937. ; pascal ComponentResult ImageCodecCreateStandardParameterDialog(ComponentInstance ci, QTAtomContainer parameterDescription, QTAtomContainer parameters, QTParameterDialogOptions dialogOptions, DialogPtr existingDialog, short existingUserItem, QTParameterDialog *createdDialog)
  938. ;
  939.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  940.         Macro
  941.         _ImageCodecCreateStandardParameterDialog
  942.             move.l              #$0016001D,-(sp)
  943.             moveq               #0,D0
  944.             dc.w                $A82A
  945.         EndM
  946.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  947.         IMPORT_CFM_FUNCTION ImageCodecCreateStandardParameterDialog
  948.     ENDIF
  949.  
  950. ;
  951. ; pascal ComponentResult ImageCodecIsStandardParameterDialogEvent(ComponentInstance ci, EventRecord *pEvent, QTParameterDialog createdDialog)
  952. ;
  953.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  954.         Macro
  955.         _ImageCodecIsStandardParameterDialogEvent
  956.             move.l              #$0008001E,-(sp)
  957.             moveq               #0,D0
  958.             dc.w                $A82A
  959.         EndM
  960.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  961.         IMPORT_CFM_FUNCTION ImageCodecIsStandardParameterDialogEvent
  962.     ENDIF
  963.  
  964. ;
  965. ; pascal ComponentResult ImageCodecDismissStandardParameterDialog(ComponentInstance ci, QTParameterDialog createdDialog)
  966. ;
  967.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  968.         Macro
  969.         _ImageCodecDismissStandardParameterDialog
  970.             move.l              #$0004001F,-(sp)
  971.             moveq               #0,D0
  972.             dc.w                $A82A
  973.         EndM
  974.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  975.         IMPORT_CFM_FUNCTION ImageCodecDismissStandardParameterDialog
  976.     ENDIF
  977.  
  978. ;
  979. ; pascal ComponentResult ImageCodecStandardParameterDialogDoAction(ComponentInstance ci, QTParameterDialog createdDialog, long action, void *params)
  980. ;
  981.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  982.         Macro
  983.         _ImageCodecStandardParameterDialogDoAction
  984.             move.l              #$000C0020,-(sp)
  985.             moveq               #0,D0
  986.             dc.w                $A82A
  987.         EndM
  988.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  989.         IMPORT_CFM_FUNCTION ImageCodecStandardParameterDialogDoAction
  990.     ENDIF
  991.  
  992. ;
  993. ; pascal ComponentResult ImageCodecNewImageGWorld(ComponentInstance ci, CodecDecompressParams *params, GWorldPtr *newGW, long flags)
  994. ;
  995.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  996.         Macro
  997.         _ImageCodecNewImageGWorld
  998.             move.l              #$000C0021,-(sp)
  999.             moveq               #0,D0
  1000.             dc.w                $A82A
  1001.         EndM
  1002.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1003.         IMPORT_CFM_FUNCTION ImageCodecNewImageGWorld
  1004.     ENDIF
  1005.  
  1006. ;
  1007. ; pascal ComponentResult ImageCodecDisposeImageGWorld(ComponentInstance ci, GWorldPtr theGW)
  1008. ;
  1009.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1010.         Macro
  1011.         _ImageCodecDisposeImageGWorld
  1012.             move.l              #$00040022,-(sp)
  1013.             moveq               #0,D0
  1014.             dc.w                $A82A
  1015.         EndM
  1016.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1017.         IMPORT_CFM_FUNCTION ImageCodecDisposeImageGWorld
  1018.     ENDIF
  1019.  
  1020. ;
  1021. ; pascal ComponentResult ImageCodecHitTestDataWithFlags(ComponentInstance ci, ImageDescriptionHandle desc, void *data, Size dataSize, Point where, long *hit, long hitFlags)
  1022. ;
  1023.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1024.         Macro
  1025.         _ImageCodecHitTestDataWithFlags
  1026.             move.l              #$00180023,-(sp)
  1027.             moveq               #0,D0
  1028.             dc.w                $A82A
  1029.         EndM
  1030.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1031.         IMPORT_CFM_FUNCTION ImageCodecHitTestDataWithFlags
  1032.     ENDIF
  1033.  
  1034. ;
  1035. ; pascal ComponentResult ImageCodecValidateParameters(ComponentInstance ci, QTAtomContainer parameters, QTParameterValidationOptions validationFlags, StringPtr errorString)
  1036. ;
  1037.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1038.         Macro
  1039.         _ImageCodecValidateParameters
  1040.             move.l              #$000C0024,-(sp)
  1041.             moveq               #0,D0
  1042.             dc.w                $A82A
  1043.         EndM
  1044.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1045.         IMPORT_CFM_FUNCTION ImageCodecValidateParameters
  1046.     ENDIF
  1047.  
  1048. ;
  1049. ; pascal ComponentResult ImageCodecGetBaseMPWorkFunction(ComponentInstance ci, ComponentMPWorkFunctionUPP *workFunction, void **refCon, ImageCodecMPDrawBandUPP drawProc, void *drawProcRefCon)
  1050. ;
  1051.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1052.         Macro
  1053.         _ImageCodecGetBaseMPWorkFunction
  1054.             move.l              #$00100025,-(sp)
  1055.             moveq               #0,D0
  1056.             dc.w                $A82A
  1057.         EndM
  1058.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1059.         IMPORT_CFM_FUNCTION ImageCodecGetBaseMPWorkFunction
  1060.     ENDIF
  1061.  
  1062. ;
  1063. ; pascal ComponentResult ImageCodecPreflight(ComponentInstance ci, CodecDecompressParams *params)
  1064. ;
  1065.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1066.         Macro
  1067.         _ImageCodecPreflight
  1068.             move.l              #$00040200,-(sp)
  1069.             moveq               #0,D0
  1070.             dc.w                $A82A
  1071.         EndM
  1072.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1073.         IMPORT_CFM_FUNCTION ImageCodecPreflight
  1074.     ENDIF
  1075.  
  1076. ;
  1077. ; pascal ComponentResult ImageCodecInitialize(ComponentInstance ci, ImageSubCodecDecompressCapabilities *cap)
  1078. ;
  1079.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1080.         Macro
  1081.         _ImageCodecInitialize
  1082.             move.l              #$00040201,-(sp)
  1083.             moveq               #0,D0
  1084.             dc.w                $A82A
  1085.         EndM
  1086.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1087.         IMPORT_CFM_FUNCTION ImageCodecInitialize
  1088.     ENDIF
  1089.  
  1090. ;
  1091. ; pascal ComponentResult ImageCodecBeginBand(ComponentInstance ci, CodecDecompressParams *params, ImageSubCodecDecompressRecord *drp, long flags)
  1092. ;
  1093.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1094.         Macro
  1095.         _ImageCodecBeginBand
  1096.             move.l              #$000C0202,-(sp)
  1097.             moveq               #0,D0
  1098.             dc.w                $A82A
  1099.         EndM
  1100.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1101.         IMPORT_CFM_FUNCTION ImageCodecBeginBand
  1102.     ENDIF
  1103.  
  1104. ;
  1105. ; pascal ComponentResult ImageCodecDrawBand(ComponentInstance ci, ImageSubCodecDecompressRecord *drp)
  1106. ;
  1107.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1108.         Macro
  1109.         _ImageCodecDrawBand
  1110.             move.l              #$00040203,-(sp)
  1111.             moveq               #0,D0
  1112.             dc.w                $A82A
  1113.         EndM
  1114.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1115.         IMPORT_CFM_FUNCTION ImageCodecDrawBand
  1116.     ENDIF
  1117.  
  1118. ;
  1119. ; pascal ComponentResult ImageCodecEndBand(ComponentInstance ci, ImageSubCodecDecompressRecord *drp, OSErr result, long flags)
  1120. ;
  1121.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1122.         Macro
  1123.         _ImageCodecEndBand
  1124.             move.l              #$000A0204,-(sp)
  1125.             moveq               #0,D0
  1126.             dc.w                $A82A
  1127.         EndM
  1128.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1129.         IMPORT_CFM_FUNCTION ImageCodecEndBand
  1130.     ENDIF
  1131.  
  1132. ;
  1133. ; pascal ComponentResult ImageCodecQueueStarting(ComponentInstance ci)
  1134. ;
  1135.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1136.         Macro
  1137.         _ImageCodecQueueStarting
  1138.             move.l              #$00000205,-(sp)
  1139.             moveq               #0,D0
  1140.             dc.w                $A82A
  1141.         EndM
  1142.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1143.         IMPORT_CFM_FUNCTION ImageCodecQueueStarting
  1144.     ENDIF
  1145.  
  1146. ;
  1147. ; pascal ComponentResult ImageCodecQueueStopping(ComponentInstance ci)
  1148. ;
  1149.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1150.         Macro
  1151.         _ImageCodecQueueStopping
  1152.             move.l              #$00000206,-(sp)
  1153.             moveq               #0,D0
  1154.             dc.w                $A82A
  1155.         EndM
  1156.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1157.         IMPORT_CFM_FUNCTION ImageCodecQueueStopping
  1158.     ENDIF
  1159.  
  1160. ;
  1161. ; pascal ComponentResult ImageCodecDroppingFrame(ComponentInstance ci, const ImageSubCodecDecompressRecord *drp)
  1162. ;
  1163.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1164.         Macro
  1165.         _ImageCodecDroppingFrame
  1166.             move.l              #$00040207,-(sp)
  1167.             moveq               #0,D0
  1168.             dc.w                $A82A
  1169.         EndM
  1170.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1171.         IMPORT_CFM_FUNCTION ImageCodecDroppingFrame
  1172.     ENDIF
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186. kMotionJPEGTag                    EQU        'mjpg'
  1187. kJPEGQuantizationTablesImageDescriptionExtension EQU 'mjqt'
  1188. kJPEGHuffmanTablesImageDescriptionExtension EQU 'mjht'
  1189. kFieldInfoImageDescriptionExtension EQU    'fiel'                ; image description extension describing the field count and field orderings
  1190.  
  1191. kFieldOrderUnknown                EQU        0
  1192. kFieldsStoredF1F2DisplayedF1F2    EQU        1
  1193. kFieldsStoredF1F2DisplayedF2F1    EQU        2
  1194. kFieldsStoredF2F1DisplayedF1F2    EQU        5
  1195. kFieldsStoredF2F1DisplayedF2F1    EQU        6
  1196. MotionJPEGApp1Marker    RECORD 0
  1197. unused                     ds.l    1                ; offset: $0 (0)
  1198. tag                         ds.l    1                ; offset: $4 (4)
  1199. fieldSize                 ds.l    1                ; offset: $8 (8)
  1200. paddedFieldSize             ds.l    1                ; offset: $C (12)
  1201. offsetToNextField         ds.l    1                ; offset: $10 (16)
  1202. qTableOffset             ds.l    1                ; offset: $14 (20)
  1203. huffmanTableOffset         ds.l    1                ; offset: $18 (24)
  1204. sofOffset                 ds.l    1                ; offset: $1C (28)
  1205. sosOffset                 ds.l    1                ; offset: $20 (32)
  1206. soiOffset                 ds.l    1                ; offset: $24 (36)
  1207. sizeof                     EQU *                    ; size:   $28 (40)
  1208.                         ENDR
  1209. FieldInfoImageDescriptionExtension RECORD 0
  1210. fieldCount                 ds.b    1                ; offset: $0 (0)
  1211. fieldOrderings             ds.b    1                ; offset: $1 (1)
  1212. sizeof                     EQU *                    ; size:   $2 (2)
  1213.                         ENDR
  1214.  
  1215. ;
  1216. ; pascal ComponentResult QTPhotoSetSampling(ComponentInstance codec, short yH, short yV, short cbH, short cbV, short crH, short crV)
  1217. ;
  1218.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1219.         Macro
  1220.         _QTPhotoSetSampling
  1221.             move.l              #$000C0100,-(sp)
  1222.             moveq               #0,D0
  1223.             dc.w                $A82A
  1224.         EndM
  1225.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1226.         IMPORT_CFM_FUNCTION QTPhotoSetSampling
  1227.     ENDIF
  1228.  
  1229. ;
  1230. ; pascal ComponentResult QTPhotoSetRestartInterval(ComponentInstance codec, unsigned short restartInterval)
  1231. ;
  1232.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1233.         Macro
  1234.         _QTPhotoSetRestartInterval
  1235.             move.l              #$00020101,-(sp)
  1236.             moveq               #0,D0
  1237.             dc.w                $A82A
  1238.         EndM
  1239.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1240.         IMPORT_CFM_FUNCTION QTPhotoSetRestartInterval
  1241.     ENDIF
  1242.  
  1243. ;
  1244. ; pascal ComponentResult QTPhotoDefineHuffmanTable(ComponentInstance codec, short componentNumber, Boolean isDC, unsigned char *lengthCounts, unsigned char *values)
  1245. ;
  1246.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1247.         Macro
  1248.         _QTPhotoDefineHuffmanTable
  1249.             move.l              #$000C0102,-(sp)
  1250.             moveq               #0,D0
  1251.             dc.w                $A82A
  1252.         EndM
  1253.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1254.         IMPORT_CFM_FUNCTION QTPhotoDefineHuffmanTable
  1255.     ENDIF
  1256.  
  1257. ;
  1258. ; pascal ComponentResult QTPhotoDefineQuantizationTable(ComponentInstance codec, short componentNumber, unsigned char *table)
  1259. ;
  1260.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1261.         Macro
  1262.         _QTPhotoDefineQuantizationTable
  1263.             move.l              #$00060103,-(sp)
  1264.             moveq               #0,D0
  1265.             dc.w                $A82A
  1266.         EndM
  1267.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1268.         IMPORT_CFM_FUNCTION QTPhotoDefineQuantizationTable
  1269.     ENDIF
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275. ;  source identifier -- placed in root container of description, one or more required 
  1276.  
  1277. kEffectSourceName                EQU        'src '
  1278.  
  1279. ;  source type -- placed in the input map to identify the source kind 
  1280.  
  1281. kEffectDataSourceType            EQU        'dtst'
  1282. ;   default effect types 
  1283.  
  1284. kEffectRawSource                EQU        0                    ; the source is raw image data
  1285. kEffectGenericType                EQU        'geff'                ; generic effect for combining others
  1286.  
  1287.  
  1288. ; typedef EffectSource *                EffectSourcePtr
  1289.  
  1290. SourceData                RECORD 0
  1291. image                     ds.l    1                ; offset: $0 (0)
  1292.                          ORG 0
  1293. effect                     ds.l    1                ; offset: $0 (0)
  1294. sizeof                     EQU *                    ; size:   $4 (4)
  1295.                         ENDR
  1296.  
  1297. EffectSource            RECORD 0
  1298. effectType                 ds.l    1                ; offset: $0 (0)        ;  type of effect or kEffectRawSource if raw ICM data
  1299. data                     ds.l    1                ; offset: $4 (4)        ;  track data for this effect
  1300. source                     ds        SourceData        ; offset: $8 (8)        ;  source/effect pointers
  1301. next                     ds.l    1                ; offset: $C (12)        ;  the next source for the parent effect
  1302. sizeof                     EQU *                    ; size:   $10 (16)
  1303.                         ENDR
  1304. EffectsFrameParams        RECORD 0
  1305. frameTime                 ds        ICMFrameTimeRecord ; offset: $0 (0)        ;  timing data
  1306. effectDuration             ds.l    1                ; offset: $30 (48)        ;  the duration of a single effect frame
  1307. doAsync                     ds.b    1                ; offset: $34 (52)        ;  set to true if the effect can go async
  1308. pad                         ds.b    3                ; offset: $35 (53)
  1309. source                     ds.l    1                ; offset: $38 (56)        ;  ptr to the source input tree
  1310. refCon                     ds.l    1                ; offset: $3C (60)        ;  storage for the effect
  1311. sizeof                     EQU *                    ; size:   $40 (64)
  1312.                         ENDR
  1313. ; typedef struct EffectsFrameParams *    EffectsFrameParamsPtr
  1314.  
  1315.  
  1316.  
  1317. ;
  1318. ; pascal ComponentResult ImageCodecEffectSetup(ComponentInstance effect, CodecDecompressParams *p)
  1319. ;
  1320.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1321.         Macro
  1322.         _ImageCodecEffectSetup
  1323.             move.l              #$00040300,-(sp)
  1324.             moveq               #0,D0
  1325.             dc.w                $A82A
  1326.         EndM
  1327.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1328.         IMPORT_CFM_FUNCTION ImageCodecEffectSetup
  1329.     ENDIF
  1330.  
  1331. ;
  1332. ; pascal ComponentResult ImageCodecEffectBegin(ComponentInstance effect, CodecDecompressParams *p, EffectsFrameParamsPtr ePtr)
  1333. ;
  1334.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1335.         Macro
  1336.         _ImageCodecEffectBegin
  1337.             move.l              #$00080301,-(sp)
  1338.             moveq               #0,D0
  1339.             dc.w                $A82A
  1340.         EndM
  1341.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1342.         IMPORT_CFM_FUNCTION ImageCodecEffectBegin
  1343.     ENDIF
  1344.  
  1345. ;
  1346. ; pascal ComponentResult ImageCodecEffectRenderFrame(ComponentInstance effect, EffectsFrameParamsPtr p)
  1347. ;
  1348.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1349.         Macro
  1350.         _ImageCodecEffectRenderFrame
  1351.             move.l              #$00040302,-(sp)
  1352.             moveq               #0,D0
  1353.             dc.w                $A82A
  1354.         EndM
  1355.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1356.         IMPORT_CFM_FUNCTION ImageCodecEffectRenderFrame
  1357.     ENDIF
  1358.  
  1359. ;
  1360. ; pascal ComponentResult ImageCodecEffectConvertEffectSourceToFormat(ComponentInstance effect, EffectSourcePtr sourceToConvert, ImageDescriptionHandle requestedDesc)
  1361. ;
  1362.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1363.         Macro
  1364.         _ImageCodecEffectConvertEffectSourceToFormat
  1365.             move.l              #$00080303,-(sp)
  1366.             moveq               #0,D0
  1367.             dc.w                $A82A
  1368.         EndM
  1369.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1370.         IMPORT_CFM_FUNCTION ImageCodecEffectConvertEffectSourceToFormat
  1371.     ENDIF
  1372.  
  1373. ;
  1374. ; pascal ComponentResult ImageCodecEffectCancel(ComponentInstance effect, EffectsFrameParamsPtr p)
  1375. ;
  1376.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1377.         Macro
  1378.         _ImageCodecEffectCancel
  1379.             move.l              #$00040304,-(sp)
  1380.             moveq               #0,D0
  1381.             dc.w                $A82A
  1382.         EndM
  1383.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1384.         IMPORT_CFM_FUNCTION ImageCodecEffectCancel
  1385.     ENDIF
  1386.  
  1387. ;
  1388. ; pascal ComponentResult ImageCodecEffectGetSpeed(ComponentInstance effect, QTAtomContainer parameters, Fixed *pFPS)
  1389. ;
  1390.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1391.         Macro
  1392.         _ImageCodecEffectGetSpeed
  1393.             move.l              #$00080305,-(sp)
  1394.             moveq               #0,D0
  1395.             dc.w                $A82A
  1396.         EndM
  1397.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1398.         IMPORT_CFM_FUNCTION ImageCodecEffectGetSpeed
  1399.     ENDIF
  1400.  
  1401.  
  1402.  
  1403.  
  1404. ;  curve atom types and data structures 
  1405.  
  1406. kCurvePathAtom                    EQU        'path'
  1407. kCurveEndAtom                    EQU        'zero'
  1408. kCurveAntialiasControlAtom        EQU        'anti'
  1409. kCurveAntialiasOff                EQU        0
  1410. kCurveAntialiasOn                EQU        $FFFFFFFF
  1411. kCurveFillTypeAtom                EQU        'fill'
  1412. kCurvePenThicknessAtom            EQU        'pent'
  1413. kCurveMiterLimitAtom            EQU        'mitr'
  1414. kCurveJoinAttributesAtom        EQU        'join'
  1415. kCurveMinimumDepthAtom            EQU        'mind'
  1416. kCurveDepthAlwaysOffscreenMask    EQU        $80000000
  1417. kCurveTransferModeAtom            EQU        'xfer'
  1418. kCurveGradientAngleAtom            EQU        'angl'
  1419. kCurveGradientRadiusAtom        EQU        'radi'
  1420. kCurveGradientOffsetAtom        EQU        'cent'
  1421.  
  1422. kCurveARGBColorAtom                EQU        'argb'
  1423. ARGBColor                RECORD 0
  1424. alpha                     ds.w    1                ; offset: $0 (0)
  1425. red                         ds.w    1                ; offset: $2 (2)
  1426. green                     ds.w    1                ; offset: $4 (4)
  1427. blue                     ds.w    1                ; offset: $6 (6)
  1428. sizeof                     EQU *                    ; size:   $8 (8)
  1429.                         ENDR
  1430.  
  1431. kCurveGradientRecordAtom        EQU        'grad'
  1432. GradientColorRecord        RECORD 0
  1433. thisColor                 ds        ARGBColor        ; offset: $0 (0)
  1434. endingPercentage         ds.l    1                ; offset: $8 (8)
  1435. sizeof                     EQU *                    ; size:   $C (12)
  1436.                         ENDR
  1437. ; typedef struct GradientColorRecord *    GradientColorPtr
  1438.  
  1439.  
  1440. kCurveGradientTypeAtom            EQU        'grdt'
  1441. ;  currently supported gradient types 
  1442.  
  1443. kLinearGradient                    EQU        0
  1444. kCircularGradient                EQU        1
  1445. ; typedef long                             GradientType
  1446.  
  1447. ;
  1448. ; pascal ComponentResult CurveGetLength(ComponentInstance effect, gxPaths *target, long index, wide *wideLength)
  1449. ;
  1450.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1451.         Macro
  1452.         _CurveGetLength
  1453.             move.l              #$000C0100,-(sp)
  1454.             moveq               #0,D0
  1455.             dc.w                $A82A
  1456.         EndM
  1457.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1458.         IMPORT_CFM_FUNCTION CurveGetLength
  1459.     ENDIF
  1460.  
  1461. ;
  1462. ; pascal ComponentResult CurveLengthToPoint(ComponentInstance effect, gxPaths *target, long index, Fixed length, FixedPoint *location, FixedPoint *tangent)
  1463. ;
  1464.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1465.         Macro
  1466.         _CurveLengthToPoint
  1467.             move.l              #$00140101,-(sp)
  1468.             moveq               #0,D0
  1469.             dc.w                $A82A
  1470.         EndM
  1471.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1472.         IMPORT_CFM_FUNCTION CurveLengthToPoint
  1473.     ENDIF
  1474.  
  1475. ;
  1476. ; pascal ComponentResult CurveNewPath(ComponentInstance effect, Handle *pPath)
  1477. ;
  1478.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1479.         Macro
  1480.         _CurveNewPath
  1481.             move.l              #$00040102,-(sp)
  1482.             moveq               #0,D0
  1483.             dc.w                $A82A
  1484.         EndM
  1485.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1486.         IMPORT_CFM_FUNCTION CurveNewPath
  1487.     ENDIF
  1488.  
  1489. ;
  1490. ; pascal ComponentResult CurveCountPointsInPath(ComponentInstance effect, gxPaths *aPath, unsigned long contourIndex, unsigned long *pCount)
  1491. ;
  1492.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1493.         Macro
  1494.         _CurveCountPointsInPath
  1495.             move.l              #$000C0103,-(sp)
  1496.             moveq               #0,D0
  1497.             dc.w                $A82A
  1498.         EndM
  1499.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1500.         IMPORT_CFM_FUNCTION CurveCountPointsInPath
  1501.     ENDIF
  1502.  
  1503. ;
  1504. ; pascal ComponentResult CurveGetPathPoint(ComponentInstance effect, gxPaths *aPath, unsigned long contourIndex, unsigned long pointIndex, gxPoint *thePoint, Boolean *ptIsOnPath)
  1505. ;
  1506.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1507.         Macro
  1508.         _CurveGetPathPoint
  1509.             move.l              #$00140104,-(sp)
  1510.             moveq               #0,D0
  1511.             dc.w                $A82A
  1512.         EndM
  1513.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1514.         IMPORT_CFM_FUNCTION CurveGetPathPoint
  1515.     ENDIF
  1516.  
  1517. ;
  1518. ; pascal ComponentResult CurveInsertPointIntoPath(ComponentInstance effect, gxPoint *aPoint, Handle thePath, unsigned long contourIndex, unsigned long pointIndex, Boolean ptIsOnPath)
  1519. ;
  1520.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1521.         Macro
  1522.         _CurveInsertPointIntoPath
  1523.             move.l              #$00120105,-(sp)
  1524.             moveq               #0,D0
  1525.             dc.w                $A82A
  1526.         EndM
  1527.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1528.         IMPORT_CFM_FUNCTION CurveInsertPointIntoPath
  1529.     ENDIF
  1530.  
  1531. ;
  1532. ; pascal ComponentResult CurveSetPathPoint(ComponentInstance effect, gxPaths *aPath, unsigned long contourIndex, unsigned long pointIndex, gxPoint *thePoint, Boolean ptIsOnPath)
  1533. ;
  1534.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1535.         Macro
  1536.         _CurveSetPathPoint
  1537.             move.l              #$00120106,-(sp)
  1538.             moveq               #0,D0
  1539.             dc.w                $A82A
  1540.         EndM
  1541.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1542.         IMPORT_CFM_FUNCTION CurveSetPathPoint
  1543.     ENDIF
  1544.  
  1545. ;
  1546. ; pascal ComponentResult CurveGetNearestPathPoint(ComponentInstance effect, gxPaths *aPath, FixedPoint *thePoint, unsigned long *contourIndex, unsigned long *pointIndex, Fixed *theDelta)
  1547. ;
  1548.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1549.         Macro
  1550.         _CurveGetNearestPathPoint
  1551.             move.l              #$00140107,-(sp)
  1552.             moveq               #0,D0
  1553.             dc.w                $A82A
  1554.         EndM
  1555.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1556.         IMPORT_CFM_FUNCTION CurveGetNearestPathPoint
  1557.     ENDIF
  1558.  
  1559. ;
  1560. ; pascal ComponentResult CurvePathPointToLength(ComponentInstance ci, gxPaths *aPath, Fixed startDist, Fixed endDist, FixedPoint *thePoint, Fixed *pLength)
  1561. ;
  1562.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1563.         Macro
  1564.         _CurvePathPointToLength
  1565.             move.l              #$00140108,-(sp)
  1566.             moveq               #0,D0
  1567.             dc.w                $A82A
  1568.         EndM
  1569.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1570.         IMPORT_CFM_FUNCTION CurvePathPointToLength
  1571.     ENDIF
  1572.  
  1573. ;
  1574. ; pascal ComponentResult CurveCreateVectorStream(ComponentInstance effect, Handle *pStream)
  1575. ;
  1576.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1577.         Macro
  1578.         _CurveCreateVectorStream
  1579.             move.l              #$00040109,-(sp)
  1580.             moveq               #0,D0
  1581.             dc.w                $A82A
  1582.         EndM
  1583.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1584.         IMPORT_CFM_FUNCTION CurveCreateVectorStream
  1585.     ENDIF
  1586.  
  1587. ;
  1588. ; pascal ComponentResult CurveAddAtomToVectorStream(ComponentInstance effect, OSType atomType, Size atomSize, void *pAtomData, Handle vectorStream)
  1589. ;
  1590.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1591.         Macro
  1592.         _CurveAddAtomToVectorStream
  1593.             move.l              #$0010010A,-(sp)
  1594.             moveq               #0,D0
  1595.             dc.w                $A82A
  1596.         EndM
  1597.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1598.         IMPORT_CFM_FUNCTION CurveAddAtomToVectorStream
  1599.     ENDIF
  1600.  
  1601. ;
  1602. ; pascal ComponentResult CurveAddPathAtomToVectorStream(ComponentInstance effect, Handle pathData, Handle vectorStream)
  1603. ;
  1604.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1605.         Macro
  1606.         _CurveAddPathAtomToVectorStream
  1607.             move.l              #$0008010B,-(sp)
  1608.             moveq               #0,D0
  1609.             dc.w                $A82A
  1610.         EndM
  1611.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1612.         IMPORT_CFM_FUNCTION CurveAddPathAtomToVectorStream
  1613.     ENDIF
  1614.  
  1615. ;
  1616. ; pascal ComponentResult CurveAddZeroAtomToVectorStream(ComponentInstance effect, Handle vectorStream)
  1617. ;
  1618.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1619.         Macro
  1620.         _CurveAddZeroAtomToVectorStream
  1621.             move.l              #$0004010C,-(sp)
  1622.             moveq               #0,D0
  1623.             dc.w                $A82A
  1624.         EndM
  1625.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1626.         IMPORT_CFM_FUNCTION CurveAddZeroAtomToVectorStream
  1627.     ENDIF
  1628.  
  1629. ;
  1630. ; pascal ComponentResult CurveGetAtomDataFromVectorStream(ComponentInstance effect, Handle vectorStream, long atomType, long *dataSize, Ptr *dataPtr)
  1631. ;
  1632.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1633.         Macro
  1634.         _CurveGetAtomDataFromVectorStream
  1635.             move.l              #$0010010D,-(sp)
  1636.             moveq               #0,D0
  1637.             dc.w                $A82A
  1638.         EndM
  1639.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1640.         IMPORT_CFM_FUNCTION CurveGetAtomDataFromVectorStream
  1641.     ENDIF
  1642.  
  1643.  
  1644. ;  UPP call backs 
  1645.     ENDIF ; __IMAGECODEC__ 
  1646.  
  1647.